const fs = require('fs');
const path = require('path');
class MyCustomPlugin {
  constructor(options) {
      // 可以在这里处理初始化配置
      this.options = options || {};
  }

  apply(compiler) {
    //这个方法会在 webpack 编译过程中被调用
    //以下是在 emit 钩子中，将创建一个简单的文本文件
    compiler.hooks.emit.tapAsync('MyCustomPlugin', (compilation, callback) => {
      // 在这里可以访问到 compilation 对象
      console.log('正在构建...');
      
      // 可以进行一些操作，例如修改输出文件、生成新的文件等

      const content = '通过自定义插件创建的文件!';
      const outputPath = path.join(compiler.outputPath, 'my-plugin-output.txt');

      fs.writeFileSync(outputPath, content);
      console.log(`文件已创建: ${outputPath}`);

      // 调用回调函数以通知 Webpack 继续进行编译
      callback();
    });
  }
}

module.exports = MyCustomPlugin;